home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 22 / AACD 22.iso / AACD / Programming / Emperor_v4.0 / Emperor / Projects / IntegratedCircuitDB.c < prev    next >
Encoding:
C/C++ Source or Header  |  2001-05-05  |  73.0 KB  |  1,452 lines

  1. /* code was generated by Emperor */
  2.  
  3. #define CATCOMP_NUMBERS
  4. #define CATCOMP_STRINGS
  5. #define ALL_REACTION_CLASSES
  6. #define ALL_REACTION_MACROS
  7. #include <stdio.h>
  8. #include <stdlib.h>
  9. #include <string.h>
  10. #include <clib/alib_protos.h>
  11. #include <clib/asl_protos.h>
  12. #include <clib/dos_protos.h>
  13. #include <clib/exec_protos.h>
  14. #include <clib/gadtools_protos.h>
  15. #include <clib/graphics_protos.h>
  16. #include <clib/intuition_protos.h>
  17. #include <clib/locale_protos.h>
  18. #include <clib/resource_protos.h>
  19. #include <clib/utility_protos.h>
  20. #include <clib/colorwheel_protos.h>
  21. #include <clib/datebrowser_protos.h>
  22. #include <clib/texteditor_protos.h>
  23. #include <clib/wb_protos.h>
  24. #include <gadgets/colorwheel.h>
  25. #include <gadgets/datebrowser.h>
  26. #include <gadgets/gradientslider.h>
  27. #include <gadgets/tapedeck.h>
  28. #include <gadgets/texteditor.h>
  29. #include <proto/texteditor.h>
  30. #include <intuition/gadgetclass.h>
  31. #include <intuition/icclass.h>
  32. #include <intuition/imageclass.h>
  33. #include <reaction/reaction.h>
  34. #include <workbench/startup.h>
  35. #include <wbstartup.h>
  36.  
  37. #define TapeDeckObject   NewObject(NULL, "tapedeck.gadget"
  38. #define TextEditorObject NewObject(TEXTEDITOR_GetClass(), NULL
  39.  
  40. #define LOCALE_WINDOW_TITLE1 GetCatalogStr(Catalog, 0, "Integrated Circuits Database")
  41. #define LOCALE_SCREEN_TITLE1 GetCatalogStr(Catalog, 1, "Integrated Circuits Version 1.0  erstellt mit Emperor (downloadbar bei www.aminet.de/dev/c)")
  42. #define LOCALE_ICONIFIED_TITLE1 GetCatalogStr(Catalog, 2, "Iconified Program")
  43. #define LOCALE_REQUEST_INFO_TITLE1 GetCatalogStr(Catalog, 3, "Program information")
  44. #define LOCALE_REQUEST_INFO_BODY1 GetCatalogStr(Catalog, 4, "Integrated Circuit database version 1.0\nwas written by Matthias Gietzelt\n\nIntegrated Curcuit database was developed with Emperor.\nEmperor is downloadable at Aminetdirectory dev/c/\n\nDate: 11.01.2001\nEMail: shamane@exmail.de")
  45. #define LOCALE_REQUEST_INFO_GADGET1 GetCatalogStr(Catalog, 5, "Okay")
  46. #define LOCALE_REQUEST_QUIT_TITLE1 GetCatalogStr(Catalog, 6, "Program request")
  47. #define LOCALE_REQUEST_QUIT_BODY1 GetCatalogStr(Catalog, 7, " Do you really want to quit this program ?")
  48. #define LOCALE_REQUEST_QUIT_GADGET1 GetCatalogStr(Catalog, 8, "Okay|No")
  49. #define LOCALE_REQUEST_ERROR_TITLE1 GetCatalogStr(Catalog, 9, "Program error")
  50. #define LOCALE_REQUEST_ERROR_BODY1 GetCatalogStr(Catalog, 10, "An error has been occured:\nCouldn't load databases !")
  51. #define LOCALE_REQUEST_ERROR_GADGET1 GetCatalogStr(Catalog, 11, "Okay")
  52. #define LOCALE_MENU_PROJECT1 GetCatalogStr(Catalog, 12, "Project")
  53. #define LOCALE_MENU_INFO1 GetCatalogStr(Catalog, 13, "Information")
  54. #define LOCALE_MENU_QUIT1 GetCatalogStr(Catalog, 14, "Quit")
  55. #define MENU_EXTRAS GetCatalogStr(Catalog, 15, "Extras")
  56. #define Layout1 Gadget1[1]
  57. #define Layout2 Gadget1[2]
  58. #define Chooser1 Gadget1[3]
  59. #define Listbrowser1 Gadget1[4]
  60. #define Layout3 Gadget1[5]
  61. #define Menu_Project1 65504
  62. #define Menu_Information1 63488
  63. #define Menu_Quit1 63552
  64. #define Menu_Extras 65505
  65. BYTE Emperor_Gadgetkind1[] = { 0, 12, 12, 2, 13, 12, -1 };
  66.  
  67. LONG Inforequest1(void);
  68. LONG Quitrequest1(void);
  69. LONG Errorrequest1(void);
  70. void Chooser1_GadgetUp_Event(void);
  71. void Listbrowser1_GadgetUp_Event(void);
  72. void Menu_Information1_MenuPick_Event(void);
  73. void Menu_Quit1_MenuPick_Event(void);
  74. void Window1_CloseWindow_Event(void);
  75. void Window1_ShowWindow_Event(void);
  76. void Startup(void);
  77. void Shutdown(void);
  78. BOOL Emperor_InitProgram(void);
  79. void Emperor_QuitProgram(void);
  80. void Emperor_CloseWindow_Window1(void);
  81. void Emperor_IconifyWindow_Window1(void);
  82. struct Window *Emperor_OpenWindow_Window1(void);
  83. struct Window *Emperor_UniconifyWindow_Window1(void);
  84. BOOL Emperor_GetMenuItemAttr(UWORD, UWORD);
  85. void Emperor_SetMenuItemAttr(UWORD, UWORD, BOOL);
  86. STRPTR Emperor_GetGadgetAttr(struct Gadget *);
  87. void Emperor_SetGadgetAttr(struct Gadget *, STRPTR);
  88. STRPTR Emperor_GetGadgetAttrComplex(struct Gadget *, ULONG);
  89. void Emperor_SetGadgetAttrComplex(struct Gadget *, ULONG, STRPTR);
  90. BOOL Emperor_GetGadgetDisabledAttr(struct Gadget *);
  91. void Emperor_SetGadgetDisabledAttr(struct Gadget *, BOOL);
  92. BOOL Emperor_GetGadgetReadOnlyAttr(struct Gadget *);
  93. void Emperor_SetGadgetReadOnlyAttr(struct Gadget *, BOOL);
  94. void Emperor_ActivateGadget(struct Gadget *);
  95. void Emperor_RethinkLayout(struct Gadget *);
  96. void Emperor_RefreshGList(struct Gadget *, WORD);
  97. void Emperor_ChangeWindowPosition(struct Window *, WORD, WORD);
  98. void Emperor_ChangeWindowSize(struct Window *, WORD, WORD);
  99. void Emperor_SetWindowBusyPointer(struct Window *, BOOL);
  100. void Emperor_SetWindowTitle(struct Window *, STRPTR);
  101. void Emperor_SetScreenTitle(struct Window *, STRPTR);
  102. void Emperor_AllocChooserNode(struct List *, char **, WORD *);
  103. void Emperor_AllocClicktabNode(struct List *, char **, WORD *);
  104. void Emperor_AllocListbrowserNode(struct List *, char **, WORD *);
  105. void Emperor_AllocRadiobuttonNode(struct List *, char **, WORD *);
  106. void Emperor_AllocListbrowserGadToolsNode(struct List *, char **);
  107. ULONG stringlength(STRPTR buffer);
  108. LONG stringtoint(STRPTR);
  109. DOUBLE stringtofloat(STRPTR);
  110. STRPTR inttostring(LONG);
  111.  
  112. struct Library *IntuitionBase = NULL;
  113. struct Library *LocaleBase = NULL;
  114. struct Library *GadToolsBase = NULL;
  115. struct Library *ASLBase = NULL;
  116. struct Library *DOSLibBase = NULL;
  117. struct Library *ResourceBase = NULL;
  118. struct Library *WindowBase = NULL;
  119. struct Library *RequesterBase = NULL;
  120. struct Library *ButtonBase = NULL;
  121. struct Library *CheckBoxBase = NULL;
  122. struct Library *ChooserBase = NULL;
  123. struct Library *ClickTabBase = NULL;
  124. struct Library *ColorWheelBase = NULL;
  125. struct Library *DateBrowserBase = NULL;
  126. struct Library *FuelGaugeBase = NULL;
  127. struct Library *GetFileBase = NULL;
  128. struct Library *GetFontBase = NULL;
  129. struct Library *GetScreenModeBase = NULL;
  130. struct Library *GradientSliderBase = NULL;
  131. struct Library *IntegerBase = NULL;
  132. struct Library *LayoutBase = NULL;
  133. struct Library *ListBrowserBase = NULL;
  134. struct Library *PaletteBase = NULL;
  135. struct Library *RadioButtonBase = NULL;
  136. struct Library *ScrollerBase = NULL;
  137. struct Library *SliderBase = NULL;
  138. struct Library *SpaceBase = NULL;
  139. struct Library *SpeedBarBase = NULL;
  140. struct Library *StringBase = NULL;
  141. struct Library *TapeDeckBase = NULL;
  142. struct Library *TextEditorBase = NULL;
  143. struct Library *BevelBase = NULL;
  144. struct Library *BitmapBase = NULL;
  145. struct Library *GlyphBase = NULL;
  146. struct Library *LabelBase = NULL;
  147.  
  148. struct NewMenu NewMenu[] =
  149. {
  150.     { NM_TITLE, 0, 0, 0, 0, 0 },
  151.     { NM_ITEM, 0, "I", 0, 0, 0 },
  152.     { NM_ITEM, NM_BARLABEL, 0, 0, 0, 0 },
  153.     { NM_ITEM, 0, "Q", 0, 0, 0 },
  154.     { NM_TITLE, 0, 0, 0, 0, 0 },
  155.     { NM_END, 0, 0, 0, 0, 0 }
  156. };
  157.  
  158. void *vinfo = NULL;
  159. BOOL os35 = TRUE;
  160. BOOL terminated = FALSE;
  161. ULONG WindowSignals1 = 0L;
  162. Object *WindowObject1 = NULL;
  163. struct Catalog *Catalog = NULL;
  164. struct Gadget *Gadget1[6];
  165. struct Menu *Menu = NULL;
  166. struct MsgPort *AppPort = NULL;
  167. struct MsgPort *MsgPort = NULL;
  168. struct Screen *Screen1 = NULL;
  169. struct Window *Window1 = NULL;
  170.  
  171. const char VERSION[] = "$VER: IntegratedCircuitDB 1.7 (19-Jan-2001)";
  172. const char AUTHOR[] = "";
  173.  
  174. /* global variables declarations */
  175.  
  176.  
  177. void main(void)
  178. {
  179.     BYTE Emperor_Exception = 0;
  180.     ULONG Emperor_Input, Emperor_Code;
  181.     char Emperor_ExceptionString[300];
  182.     struct EasyStruct EmperorRequest_InitializationErrorRequest;
  183.     struct IntuiMessage *IntuiMessage = NULL;
  184.     struct Gadget *GadgetMessage = NULL;
  185.  
  186.     Emperor_Input = 0L;
  187.     Emperor_Code = 0L;
  188.     if(!Emperor_InitProgram())
  189.     {
  190.         Screen1 = LockPubScreen(NULL);
  191.         if(Screen1)
  192.         {
  193.             vinfo = GetVisualInfo(Screen1, TAG_DONE);
  194.             if(vinfo)
  195.             {
  196.                 NewMenu[0].nm_Label = LOCALE_MENU_PROJECT1;
  197.                 NewMenu[1].nm_Label = LOCALE_MENU_INFO1;
  198.                 NewMenu[2].nm_Label = NM_BARLABEL;
  199.                 NewMenu[3].nm_Label = LOCALE_MENU_QUIT1;
  200.                 NewMenu[4].nm_Label = MENU_EXTRAS;
  201.                 Menu = CreateMenus(NewMenu, GTMN_FullMenu, TRUE, TAG_DONE);
  202.                 if(Menu)
  203.                 {
  204.                     LayoutMenus(Menu, vinfo, GTMN_FrontPen, 0, TAG_DONE);
  205.                     AppPort = CreateMsgPort();
  206.                     if(AppPort)
  207.                     {
  208.                         MsgPort = CreatePort("noname_Port", 0);
  209.                         if(MsgPort)
  210.                         {
  211.                             if(os35)
  212.                             {
  213.                                 WindowObject1 = (Object *) WindowObject,
  214.                                                 WA_Left, 0,
  215.                                                 WA_Top, 17,
  216.                                                 WA_Width, 400,
  217.                                                 WA_Height, 300,
  218.                                                 WA_SizeGadget, TRUE,
  219.                                                 WA_DragBar, TRUE,
  220.                                                 WA_DepthGadget, TRUE,
  221.                                                 WA_CloseGadget, TRUE,
  222.                                                 WA_Activate, TRUE,
  223.                                                 WA_AutoAdjust, TRUE,
  224.                                                 WA_IDCMP, IDCMP_GADGETDOWN | IDCMP_GADGETUP | IDCMP_GADGETHELP | IDCMP_MENUPICK | IDCMP_MENUHELP | IDCMP_CLOSEWINDOW | IDCMP_ACTIVEWINDOW | IDCMP_INACTIVEWINDOW | IDCMP_RAWKEY | IDCMP_VANILLAKEY | IDCMP_MOUSEBUTTONS | IDCMP_MOUSEMOVE | IDCMP_NEWSIZE | IDCMP_CHANGEWINDOW | IDCMP_SIZEVERIFY | IDCMP_REFRESHWINDOW | IDCMP_INTUITICKS,
  225.                                                 WA_MinWidth, -1,
  226.                                                 WA_MinHeight, -1,
  227.                                                 WA_MaxWidth, -1,
  228.                                                 WA_MaxHeight, -1,
  229.                                                 WA_Title, LOCALE_WINDOW_TITLE1,
  230.                                                 WA_ScreenTitle, LOCALE_SCREEN_TITLE1,
  231.                                                 WA_PubScreen, Screen1,
  232.                                                 WINDOW_GadgetHelp, TRUE,
  233.                                                 WINDOW_IconifyGadget, FALSE,
  234.                                                 WINDOW_IconTitle, LOCALE_ICONIFIED_TITLE1,
  235.                                                 WINDOW_AppPort, AppPort,
  236.                                                 WINDOW_ParentGroup, (Object *) Gadget1[0] = (Object *) VGroupObject,
  237.                                                                         LAYOUT_SpaceOuter, TRUE,
  238.                                                                         LAYOUT_DeferLayout, TRUE,
  239.                                                                         LAYOUT_AddChild, (Object *) Gadget1[1] = (Object *) LayoutObject,
  240.                                                                                          GA_ID, 0,
  241.                                                                                          GA_RelVerify, TRUE,
  242.                                                                                          GA_GadgetHelp, TRUE,
  243.                                                                                          LAYOUT_Label, "",
  244.                                                                                          LAYOUT_Orientation, 0,
  245.                                                                                          LAYOUT_HorizAlignment, LALIGN_LEFT,
  246.                                                                                          LAYOUT_VertAlignment, LALIGN_TOP,
  247.                                                                                          LAYOUT_LabelPlace, BVJ_TOP_LEFT,
  248.                                                                                          LAYOUT_BevelState, IDS_NORMAL,
  249.                                                                                          LAYOUT_BevelStyle, 4,
  250.                                                                                          LAYOUT_AddChild, (Object *) Gadget1[2] = (Object *) LayoutObject,
  251.                                                                                                           GA_ID, 1,
  252.                                                                                                           GA_RelVerify, TRUE,
  253.                                                                                                           GA_GadgetHelp, TRUE,
  254.                                                                                                           LAYOUT_Label, "",
  255.                                                                                                           LAYOUT_Orientation, 1,
  256.                                                                                                           LAYOUT_HorizAlignment, LALIGN_LEFT,
  257.                                                                                                           LAYOUT_VertAlignment, LALIGN_TOP,
  258.                                                                                                           LAYOUT_LabelPlace, BVJ_TOP_LEFT,
  259.                                                                                                           LAYOUT_BevelState, IDS_NORMAL,
  260.                                                                                                           LAYOUT_BevelStyle, 4,
  261.                                                                                                           LAYOUT_AddChild, (Object *) Gadget1[3] = (Object *) ChooserObject,
  262.                                                                                                                            GA_ID, 2,
  263.                                                                                                                            GA_RelVerify, TRUE,
  264.                                                                                                                            GA_GadgetHelp, TRUE,
  265.                                                                                                                            CHOOSER_Title, "Chooser1",
  266.                                                                                                                            CHOOSER_AutoFit, TRUE,
  267.                                                                                                                            CHOOSER_PopUp, TRUE,
  268.                                                                                                                            CHOOSER_MaxLabels, 6,
  269.                                                                                                                            CHOOSER_Offset, 0,
  270.                                                                                                                            CHOOSER_Selected, -1,
  271.                                                                                                           End,
  272.                                                                                                           LAYOUT_AddChild, (Object *) Gadget1[4] = (Object *) ListBrowserObject,
  273.                                                                                                                            GA_ID, 3,
  274.                                                                                                                            GA_RelVerify, TRUE,
  275.                                                                                                                            GA_GadgetHelp, TRUE,
  276.                                                                                                                            LISTBROWSER_AutoFit, TRUE,
  277.                                                                                                                            LISTBROWSER_ShowSelected, TRUE,
  278.                                                                                                                            LISTBROWSER_VerticalProp, TRUE,
  279.                                                                                                                            LISTBROWSER_HorizontalProp, TRUE,
  280.                                                                                                           End,
  281.                                                                                          End,
  282.                                                                                          LAYOUT_AddChild, (Object *) Gadget1[5] = (Object *) LayoutObject,
  283.                                                                                                           GA_ID, 4,
  284.                                                                                                           GA_RelVerify, TRUE,
  285.                                                                                                           GA_GadgetHelp, TRUE,
  286.                                                                                                           LAYOUT_Label, "",
  287.                                                                                                           LAYOUT_Orientation, 0,
  288.                                                                                                           LAYOUT_FillPen, 0,
  289.                                                                                                           LAYOUT_HorizAlignment, LALIGN_LEFT,
  290.                                                                                                           LAYOUT_VertAlignment, LALIGN_TOP,
  291.                                                                                                           LAYOUT_LabelPlace, BVJ_TOP_LEFT,
  292.                                                                                                           LAYOUT_BevelState, IDS_SELECTED,
  293.                                                                                                           LAYOUT_BevelStyle, 3,
  294.                                                                                          End,
  295.                                                                         End,
  296.                                                 EndGroup,
  297.                                 EndWindow;
  298.                             }
  299.  
  300.                             SetProgramName("IntegratedCircuitDB");
  301.                             Startup();
  302.                             Emperor_OpenWindow_Window1();
  303.                             while(!terminated)
  304.                             {
  305.                                 Wait(WindowSignals1 | WindowSignals1);
  306.                                 while((Emperor_Input = RA_HandleInput(WindowObject1, &Emperor_Code)) != WMHI_LASTMSG)
  307.                                 {
  308.                                     switch(Emperor_Input & WMHI_CLASSMASK)
  309.                                     {
  310.                                         case WMHI_GADGETUP:
  311.                                             switch(Emperor_Input & WMHI_GADGETMASK)
  312.                                             {
  313.                                                 case 2: Chooser1_GadgetUp_Event(); break;
  314.                                                 case 3: Listbrowser1_GadgetUp_Event(); break;
  315.                                                 default: break;
  316.                                             }
  317.                                             break;
  318.                                         case WMHI_GADGETHELP:
  319.                                             switch(Emperor_Input & WMHI_GADGETMASK)
  320.                                             {
  321.                                                 default: break;
  322.                                             }
  323.                                             break;
  324.                                         case WMHI_MENUPICK:
  325.                                             switch(Emperor_Input & WMHI_MENUMASK)
  326.                                             {
  327.                                                 case Menu_Information1: Menu_Information1_MenuPick_Event(); break;
  328.                                                 case Menu_Quit1: Menu_Quit1_MenuPick_Event(); break;
  329.                                                 default: break;
  330.                                             }
  331.                                             break;
  332.                                         case WMHI_MENUHELP:
  333.                                             switch(Emperor_Input & WMHI_MENUMASK)
  334.                                             {
  335.                                                 default: break;
  336.                                             }
  337.                                             break;
  338.                                         case WMHI_CLOSEWINDOW:
  339.                                             Window1_CloseWindow_Event();
  340.                                             break;
  341.                                         case WMHI_ICONIFY:
  342.                                             break;
  343.                                         case WMHI_UNICONIFY:
  344.                                             break;
  345.                                         case WMHI_ACTIVE:
  346.                                             break;
  347.                                         case WMHI_INACTIVE:
  348.                                             break;
  349.                                         case WMHI_RAWKEY:
  350.                                             break;
  351.                                         case WMHI_VANILLAKEY:
  352.                                             break;
  353.                                         case WMHI_MOUSEBUTTONS:
  354.                                             break;
  355.                                         case WMHI_MOUSEMOVE:
  356.                                             break;
  357.                                         case WMHI_NEWSIZE:
  358.                                             break;
  359.                                         case WMHI_CHANGEWINDOW:
  360.                                             break;
  361.                                         case WMHI_DISPOSEDWINDOW:
  362.                                             break;
  363.                                         case WMHI_INTUITICK:
  364.                                             break;
  365.                                     }
  366.                                 }
  367.                             }
  368.                             Shutdown();
  369.                         }
  370.                         else Emperor_Exception = 4;
  371.                     }
  372.                     else Emperor_Exception = 4;
  373.                 }
  374.                 else Emperor_Exception = 3;
  375.             }
  376.             else Emperor_Exception = 2;
  377.         }
  378.         else Emperor_Exception = 1;
  379.     }
  380.     if(Emperor_Exception)
  381.     {
  382.         strcpy(Emperor_ExceptionString, "Error during initialization:\n\n");
  383.         switch(Emperor_Exception)
  384.         {
  385.             case 1: strcat(Emperor_ExceptionString, "Can't lock your public-screen."); break;
  386.             case 2: strcat(Emperor_ExceptionString, "Can't get visualinfo of your public-screen."); break;
  387.             case 3: strcat(Emperor_ExceptionString, "Can't create menu."); break;
  388.             case 4: strcat(Emperor_ExceptionString, "Can't create message-port."); break;
  389.         }
  390.         strcat(Emperor_ExceptionString, "\n\nMaybe there isn't enough memory !");
  391.         EmperorRequest_InitializationErrorRequest.es_StructSize = sizeof(struct EasyStruct);
  392.         EmperorRequest_InitializationErrorRequest.es_Flags = 0L;
  393.         EmperorRequest_InitializationErrorRequest.es_Title = (UBYTE *) "Program error";
  394.         EmperorRequest_InitializationErrorRequest.es_TextFormat = (UBYTE *) Emperor_ExceptionString;
  395.         EmperorRequest_InitializationErrorRequest.es_GadgetFormat = (UBYTE *) "Okay";
  396.         EasyRequest(Window1, &EmperorRequest_InitializationErrorRequest, NULL, NULL);
  397.     }
  398.     Emperor_QuitProgram();
  399. }
  400.  
  401. void wbmain(struct WBStartup *Emperor_ArgMsg)
  402. {
  403.     main();
  404. }
  405.  
  406.  
  407. LONG Inforequest1(void)
  408. {
  409.     struct EasyStruct EmperorRequest_Inforequest1;
  410.  
  411.     EmperorRequest_Inforequest1.es_StructSize = sizeof(struct EasyStruct);
  412.     EmperorRequest_Inforequest1.es_Flags = 0L;
  413.     EmperorRequest_Inforequest1.es_Title = (UBYTE *) LOCALE_REQUEST_INFO_TITLE1;
  414.     EmperorRequest_Inforequest1.es_TextFormat = (UBYTE *) LOCALE_REQUEST_INFO_BODY1;
  415.     EmperorRequest_Inforequest1.es_GadgetFormat = (UBYTE *) LOCALE_REQUEST_INFO_GADGET1;
  416.     return(EasyRequest(Window1, &EmperorRequest_Inforequest1, NULL, NULL));
  417. }
  418.  
  419. LONG Quitrequest1(void)
  420. {
  421.     struct EasyStruct EmperorRequest_Quitrequest1;
  422.  
  423.     EmperorRequest_Quitrequest1.es_StructSize = sizeof(struct EasyStruct);
  424.     EmperorRequest_Quitrequest1.es_Flags = 0L;
  425.     EmperorRequest_Quitrequest1.es_Title = (UBYTE *) LOCALE_REQUEST_QUIT_TITLE1;
  426.     EmperorRequest_Quitrequest1.es_TextFormat = (UBYTE *) LOCALE_REQUEST_QUIT_BODY1;
  427.     EmperorRequest_Quitrequest1.es_GadgetFormat = (UBYTE *) LOCALE_REQUEST_QUIT_GADGET1;
  428.     return(EasyRequest(Window1, &EmperorRequest_Quitrequest1, NULL, NULL));
  429. }
  430.  
  431. LONG Errorrequest1(void)
  432. {
  433.     struct EasyStruct EmperorRequest_Errorrequest1;
  434.  
  435.     EmperorRequest_Errorrequest1.es_StructSize = sizeof(struct EasyStruct);
  436.     EmperorRequest_Errorrequest1.es_Flags = 0L;
  437.     EmperorRequest_Errorrequest1.es_Title = (UBYTE *) LOCALE_REQUEST_ERROR_TITLE1;
  438.     EmperorRequest_Errorrequest1.es_TextFormat = (UBYTE *) LOCALE_REQUEST_ERROR_BODY1;
  439.     EmperorRequest_Errorrequest1.es_GadgetFormat = (UBYTE *) LOCALE_REQUEST_ERROR_GADGET1;
  440.     return(EasyRequest(Window1, &EmperorRequest_Errorrequest1, NULL, NULL));
  441. }
  442.  
  443. BOOL Emperor_InitProgram(void)
  444. {
  445.     UWORD Emperor_InitVar = 0;
  446.     char Emperor_OccuredError[50], Emperor_ExceptionString[300];
  447.     struct EasyStruct EmperorRequest_InitializationErrorRequest;
  448.  
  449.     IntuitionBase = OpenLibrary("intuition.library", 0L);
  450.     if(!IntuitionBase)
  451.     {
  452.         Emperor_InitVar = 1;
  453.         strcpy(Emperor_OccuredError, "intuition.library");
  454.     }
  455.     LocaleBase = OpenLibrary("locale.library", 0L);
  456.     if(!LocaleBase)
  457.     {
  458.         Emperor_InitVar = 1;
  459.         strcpy(Emperor_OccuredError, "locale.library");
  460.     }
  461.     GadToolsBase = OpenLibrary("gadtools.library", 0L);
  462.     if(!GadToolsBase)
  463.     {
  464.         Emperor_InitVar = 1;
  465.         strcpy(Emperor_OccuredError, "gadtools.library");
  466.     }
  467.     ASLBase = OpenLibrary("asl.library", 0L);
  468.     if(!ASLBase)
  469.     {
  470.         Emperor_InitVar = 1;
  471.         strcpy(Emperor_OccuredError, "asl.library");
  472.     }
  473.     DOSLibBase = OpenLibrary("dos.library", 0L);
  474.     if(!DOSLibBase)
  475.     {
  476.         Emperor_InitVar = 1;
  477.         strcpy(Emperor_OccuredError, "dos.library");
  478.     }
  479.     ResourceBase = OpenLibrary("resource.library", 0L);
  480.     if(!ResourceBase)
  481.     {
  482.         Emperor_InitVar = 1;
  483.         strcpy(Emperor_OccuredError, "resource.library");
  484.     }
  485.     WindowBase = OpenLibrary("window.class", 0L);
  486.     if(!WindowBase)
  487.     {
  488.         Emperor_InitVar = 1;
  489.         strcpy(Emperor_OccuredError, "window.class");
  490.     }
  491.     RequesterBase = OpenLibrary("requester.class", 0L);
  492.     if(!RequesterBase)
  493.     {
  494.         Emperor_InitVar = 1;
  495.         strcpy(Emperor_OccuredError, "requester.class");
  496.     }
  497.     ButtonBase = OpenLibrary("gadgets/button.gadget", 0L);
  498.     if(!ButtonBase)
  499.     {
  500.         Emperor_InitVar = 1;
  501.         strcpy(Emperor_OccuredError, "gadgets/button.gadget");
  502.     }
  503.     CheckBoxBase = OpenLibrary("gadgets/checkbox.gadget", 0L);
  504.     if(!CheckBoxBase)
  505.     {
  506.         Emperor_InitVar = 1;
  507.         strcpy(Emperor_OccuredError, "gadgets/checkbox.gadget");
  508.     }
  509.     ChooserBase = OpenLibrary("gadgets/chooser.gadget", 0L);
  510.     if(!ChooserBase)
  511.     {
  512.         Emperor_InitVar = 1;
  513.         strcpy(Emperor_OccuredError, "gadgets/chooser.gadget");
  514.     }
  515.     ClickTabBase = OpenLibrary("gadgets/clicktab.gadget", 0L);
  516.     if(!ClickTabBase)
  517.     {
  518.         Emperor_InitVar = 1;
  519.         strcpy(Emperor_OccuredError, "gadgets/clicktab.gadget");
  520.     }
  521.     ColorWheelBase = OpenLibrary("gadgets/colorwheel.gadget", 0L);
  522.     if(!ColorWheelBase)
  523.     {
  524.         Emperor_InitVar = 1;
  525.         strcpy(Emperor_OccuredError, "gadgets/colorwheel.gadget");
  526.     }
  527.     DateBrowserBase = OpenLibrary("gadgets/datebrowser.gadget", 0L);
  528.     if(!DateBrowserBase)
  529.     {
  530.         Emperor_InitVar = 1;
  531.         strcpy(Emperor_OccuredError, "gadgets/datebrowser.gadget");
  532.     }
  533.     FuelGaugeBase = OpenLibrary("gadgets/fuelgauge.gadget", 0L);
  534.     if(!FuelGaugeBase)
  535.     {
  536.         Emperor_InitVar = 1;
  537.         strcpy(Emperor_OccuredError, "gadgets/fuelgauge.gadget");
  538.     }
  539.     GetFileBase = OpenLibrary("gadgets/getfile.gadget", 0L);
  540.     if(!GetFileBase)
  541.     {
  542.         Emperor_InitVar = 1;
  543.         strcpy(Emperor_OccuredError, "gadgets/getfile.gadget");
  544.     }
  545.     GetFontBase = OpenLibrary("gadgets/getfont.gadget", 0L);
  546.     if(!GetFontBase)
  547.     {
  548.         Emperor_InitVar = 1;
  549.         strcpy(Emperor_OccuredError, "gadgets/getfont.gadget");
  550.     }
  551.     GetScreenModeBase = OpenLibrary("gadgets/getscreenmode.gadget", 0L);
  552.     if(!GetScreenModeBase)
  553.     {
  554.         Emperor_InitVar = 1;
  555.         strcpy(Emperor_OccuredError, "gadgets/getscreenmode.gadget");
  556.     }
  557.     GradientSliderBase = OpenLibrary("gadgets/gradientslider.gadget", 0L);
  558.     if(!GradientSliderBase)
  559.     {
  560.         Emperor_InitVar = 1;
  561.         strcpy(Emperor_OccuredError, "gadgets/gradientslider.gadget");
  562.     }
  563.     IntegerBase = OpenLibrary("gadgets/integer.gadget", 0L);
  564.     if(!IntegerBase)
  565.     {
  566.         Emperor_InitVar = 1;
  567.         strcpy(Emperor_OccuredError, "gadgets/integer.gadget");
  568.     }
  569.     LayoutBase = OpenLibrary("gadgets/layout.gadget", 0L);
  570.     if(!LayoutBase)
  571.     {
  572.         Emperor_InitVar = 1;
  573.         strcpy(Emperor_OccuredError, "gadgets/layout.gadget");
  574.     }
  575.     ListBrowserBase = OpenLibrary("gadgets/listbrowser.gadget", 0L);
  576.     if(!ListBrowserBase)
  577.     {
  578.         Emperor_InitVar = 1;
  579.         strcpy(Emperor_OccuredError, "gadgets/listbrowser.gadget");
  580.     }
  581.     PaletteBase = OpenLibrary("gadgets/palette.gadget", 0L);
  582.     if(!PaletteBase)
  583.     {
  584.         Emperor_InitVar = 1;
  585.         strcpy(Emperor_OccuredError, "gadgets/palette.gadget");
  586.     }
  587.     RadioButtonBase = OpenLibrary("gadgets/radiobutton.gadget", 0L);
  588.     if(!RadioButtonBase)
  589.     {
  590.         Emperor_InitVar = 1;
  591.         strcpy(Emperor_OccuredError, "gadgets/radiobutton.gadget");
  592.     }
  593.     ScrollerBase = OpenLibrary("gadgets/scroller.gadget", 0L);
  594.     if(!ScrollerBase)
  595.     {
  596.         Emperor_InitVar = 1;
  597.         strcpy(Emperor_OccuredError, "gadgets/scroller.gadget");
  598.     }
  599.     SliderBase = OpenLibrary("gadgets/slider.gadget", 0L);
  600.     if(!SliderBase)
  601.     {
  602.         Emperor_InitVar = 1;
  603.         strcpy(Emperor_OccuredError, "gadgets/slider.gadget");
  604.     }
  605.     SpaceBase = OpenLibrary("gadgets/space.gadget", 0L);
  606.     if(!SpaceBase)
  607.     {
  608.         Emperor_InitVar = 1;
  609.         strcpy(Emperor_OccuredError, "gadgets/space.gadget");
  610.     }
  611.     SpeedBarBase = OpenLibrary("gadgets/speedbar.gadget", 0L);
  612.     if(!SpeedBarBase)
  613.     {
  614.         Emperor_InitVar = 1;
  615.         strcpy(Emperor_OccuredError, "gadgets/speedbar.gadget");
  616.     }
  617.     StringBase = OpenLibrary("gadgets/string.gadget", 0L);
  618.     if(!StringBase)
  619.     {
  620.         Emperor_InitVar = 1;
  621.         strcpy(Emperor_OccuredError, "gadgets/string.gadget");
  622.     }
  623.     TapeDeckBase = OpenLibrary("gadgets/tapedeck.gadget", 0L);
  624.     if(!TapeDeckBase)
  625.     {
  626.         Emperor_InitVar = 1;
  627.         strcpy(Emperor_OccuredError, "gadgets/tapedeck.gadget");
  628.     }
  629.     TextEditorBase = OpenLibrary("gadgets/texteditor.gadget", 0L);
  630.     if(!TextEditorBase)
  631.     {
  632.         Emperor_InitVar = 1;
  633.         strcpy(Emperor_OccuredError, "gadgets/texteditor.gadget");
  634.     }
  635.     BevelBase = OpenLibrary("images/bevel.image", 0L);
  636.     if(!BevelBase)
  637.     {
  638.         Emperor_InitVar = 1;
  639.         strcpy(Emperor_OccuredError, "images/bevel.image");
  640.     }
  641.     BitmapBase = OpenLibrary("images/bitmap.image", 0L);
  642.     if(!BitmapBase)
  643.     {
  644.         Emperor_InitVar = 1;
  645.         strcpy(Emperor_OccuredError, "images/bitmap.image");
  646.     }
  647.     GlyphBase = OpenLibrary("images/glyph.image", 0L);
  648.     if(!GlyphBase)
  649.     {
  650.         Emperor_InitVar = 1;
  651.         strcpy(Emperor_OccuredError, "images/glyph.image");
  652.     }
  653.     LabelBase = OpenLibrary("images/label.image", 0L);
  654.     if(!LabelBase)
  655.     {
  656.         Emperor_InitVar = 1;
  657.         strcpy(Emperor_OccuredError, "images/label.image");
  658.     }
  659.     Catalog = OpenCatalogA(NULL, "IntegratedCircuitDB.catalog", NULL);
  660.     if(Emperor_InitVar)
  661.     {
  662.         strcpy(Emperor_ExceptionString, "Error during initialization:\n\n");
  663.         if(Emperor_InitVar == 1)
  664.         {
  665.             strcat(Emperor_ExceptionString, "Can't open Amiga-library\n\"");
  666.             strcat(Emperor_ExceptionString, Emperor_OccuredError);
  667.             strcat(Emperor_ExceptionString, "\"\n\nProbably you haven't got a\ncorrect installed AmigaOS system !");
  668.         }
  669.         EmperorRequest_InitializationErrorRequest.es_StructSize = sizeof(struct EasyStruct);
  670.         EmperorRequest_InitializationErrorRequest.es_Flags = 0L;
  671.         EmperorRequest_InitializationErrorRequest.es_Title = (UBYTE *) "Program error";
  672.         EmperorRequest_InitializationErrorRequest.es_TextFormat = (UBYTE *) Emperor_ExceptionString;
  673.         EmperorRequest_InitializationErrorRequest.es_GadgetFormat = (UBYTE *) "Okay";
  674.         EasyRequest(Window1, &EmperorRequest_InitializationErrorRequest, NULL, NULL);
  675.     }
  676.     return(Emperor_InitVar);
  677. }
  678.  
  679. void Emperor_QuitProgram(void)
  680. {
  681.     Emperor_CloseWindow_Window1();
  682.     if(WindowObject1) DisposeObject(WindowObject1);
  683.     if(AppPort) DeleteMsgPort(AppPort);
  684.     if(MsgPort) DeletePort(MsgPort);
  685.     if(Menu) FreeMenus(Menu);
  686.     if(vinfo) FreeVisualInfo(vinfo);
  687.     if(Screen1) UnlockPubScreen(NULL, Screen1);
  688.     if(Catalog) CloseCatalog(Catalog);
  689.     if(LabelBase) CloseLibrary(LabelBase);
  690.     if(GlyphBase) CloseLibrary(GlyphBase);
  691.     if(BitmapBase) CloseLibrary(BitmapBase);
  692.     if(BevelBase) CloseLibrary(BevelBase);
  693.     if(TextEditorBase) CloseLibrary(TextEditorBase);
  694.     if(TapeDeckBase) CloseLibrary(TapeDeckBase);
  695.     if(StringBase) CloseLibrary(StringBase);
  696.     if(SpeedBarBase) CloseLibrary(SpeedBarBase);
  697.     if(SpaceBase) CloseLibrary(SpaceBase);
  698.     if(SliderBase) CloseLibrary(SliderBase);
  699.     if(ScrollerBase) CloseLibrary(ScrollerBase);
  700.     if(RadioButtonBase) CloseLibrary(RadioButtonBase);
  701.     if(PaletteBase) CloseLibrary(PaletteBase);
  702.     if(ListBrowserBase) CloseLibrary(ListBrowserBase);
  703.     if(LayoutBase) CloseLibrary(LayoutBase);
  704.     if(IntegerBase) CloseLibrary(IntegerBase);
  705.     if(GradientSliderBase) CloseLibrary(GradientSliderBase);
  706.     if(GetScreenModeBase) CloseLibrary(GetScreenModeBase);
  707.     if(GetFontBase) CloseLibrary(GetFontBase);
  708.     if(GetFileBase) CloseLibrary(GetFileBase);
  709.     if(FuelGaugeBase) CloseLibrary(FuelGaugeBase);
  710.     if(DateBrowserBase) CloseLibrary(DateBrowserBase);
  711.     if(ColorWheelBase) CloseLibrary(ColorWheelBase);
  712.     if(ClickTabBase) CloseLibrary(ClickTabBase);
  713.     if(ChooserBase) CloseLibrary(ChooserBase);
  714.     if(CheckBoxBase) CloseLibrary(CheckBoxBase);
  715.     if(ButtonBase) CloseLibrary(ButtonBase);
  716.     if(RequesterBase) CloseLibrary(RequesterBase);
  717.     if(WindowBase) CloseLibrary(WindowBase);
  718.     if(ResourceBase) CloseLibrary(ResourceBase);
  719.     if(DOSLibBase) CloseLibrary(DOSLibBase);
  720.     if(ASLBase) CloseLibrary(ASLBase);
  721.     if(GadToolsBase) CloseLibrary(GadToolsBase);
  722.     if(LocaleBase) CloseLibrary(LocaleBase);
  723.     if(IntuitionBase) CloseLibrary(IntuitionBase);
  724.     exit(0);
  725. }
  726.  
  727. void Emperor_CloseWindow_Window1(void)
  728. {
  729.     if(os35)
  730.     {
  731.         if(Menu) ClearMenuStrip(Window1);
  732.         DoMethod(WindowObject1, WM_CLOSE, NULL);
  733.         Window1 = NULL;
  734.         WindowSignals1 = 0L;
  735.     }
  736. }
  737.  
  738. void Emperor_IconifyWindow_Window1(void)
  739. {
  740.     if(os35)
  741.     {
  742.         if(Menu) ClearMenuStrip(Window1);
  743.         DoMethod(WindowObject1, WM_ICONIFY, NULL);
  744.     }
  745. }
  746.  
  747. struct Window *Emperor_OpenWindow_Window1(void)
  748. {
  749.     if(os35)
  750.     {
  751.         Window1 = RA_OpenWindow(WindowObject1);
  752.         GetAttr(WINDOW_SigMask, WindowObject1, &WindowSignals1);
  753.         SetMenuStrip(Window1, Menu);
  754.         Window1_ShowWindow_Event();
  755.     }
  756.     return(Window1);
  757. }
  758.  
  759. struct Window *Emperor_UniconifyWindow_Window1(void)
  760. {
  761.     return(Emperor_OpenWindow_Window1());
  762. }
  763.  
  764. BOOL Emperor_GetMenuItemAttr(UWORD Emperor_MenuObject, UWORD Emperor_MenuFlagMask)
  765. {
  766.     struct MenuItem *Emperor_MenuItem = NULL;
  767.  
  768.     Emperor_MenuItem = ItemAddress(Menu, Emperor_MenuObject);
  769.     if(Emperor_MenuItem->Flags & Emperor_MenuFlagMask) return(TRUE);
  770.     else return(FALSE);
  771. }
  772.  
  773. void Emperor_SetMenuItemAttr(UWORD Emperor_MenuObject, UWORD Emperor_MenuFlagMask, BOOL Emperor_SetReset)
  774. {
  775.     struct MenuItem *Emperor_MenuItem = NULL;
  776.  
  777.     Emperor_MenuItem = ItemAddress(Menu, Emperor_MenuObject);
  778.     if(Emperor_SetReset) Emperor_MenuItem->Flags += Emperor_MenuFlagMask;
  779.     else Emperor_MenuItem->Flags -= Emperor_MenuFlagMask;
  780. }
  781.  
  782. STRPTR Emperor_GetGadgetAttr(struct Gadget *Emperor_GadgetName)
  783. {
  784.     LONG Emperor_GadgetAttrBuffer, Emperor_GadgetCounter;
  785.     STRPTR Emperor_GadgetAttrReturn = "";
  786.  
  787.     Emperor_GadgetAttrBuffer = 0L;
  788.     for(Emperor_GadgetCounter = 0;Emperor_GadgetCounter < 1023;Emperor_GadgetCounter++)
  789.     {
  790.         if(Gadget1[Emperor_GadgetCounter] == Emperor_GadgetName)
  791.         {
  792.             switch(Emperor_Gadgetkind1[Emperor_GadgetCounter])
  793.             {
  794.                 case 0:
  795.                     GetAttr(GA_Selected, Emperor_GadgetName, (ULONG *) &Emperor_GadgetAttrBuffer);
  796.                     strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer));
  797.                     break;
  798.                 case 1:
  799.                     GetAttr(GA_Selected, Emperor_GadgetName, (ULONG *) &Emperor_GadgetAttrBuffer);
  800.                     strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer));
  801.                     break;
  802.                 case 2:
  803.                     GetAttr(CHOOSER_Selected, Emperor_GadgetName, (ULONG *) &Emperor_GadgetAttrBuffer);
  804.                     strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer));
  805.                     break;
  806.                 case 3:
  807.                     GetAttr(CLICKTAB_Current, Emperor_GadgetName, (ULONG *) &Emperor_GadgetAttrBuffer);
  808.                     strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer));
  809.                     break;
  810.                 case 6:
  811.                     GetAttr(FUELGAUGE_Level, Emperor_GadgetName, (ULONG *) &Emperor_GadgetAttrBuffer);
  812.                     strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer));
  813.                     break;
  814.                 case 10:
  815.                     GetAttr(GRAD_CurVal, Emperor_GadgetName, (ULONG *) &Emperor_GadgetAttrBuffer);
  816.                     strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer));
  817.                     break;
  818.                 case 11:
  819.                     GetAttr(INTEGER_Number, Emperor_GadgetName, (ULONG *) &Emperor_GadgetAttrBuffer);
  820.                     strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer));
  821.                     break;
  822.                 case 13:
  823.                     GetAttr(LISTBROWSER_Selected, Emperor_GadgetName, (ULONG *) &Emperor_GadgetAttrBuffer);
  824.                     strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer));
  825.                     break;
  826.                 case 14:
  827.                     GetAttr(PALETTE_Colour, Emperor_GadgetName, (ULONG *) &Emperor_GadgetAttrBuffer);
  828.                     strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer));
  829.                     break;
  830.                 case 15:
  831.                     GetAttr(RADIOBUTTON_Selected, Emperor_GadgetName, (ULONG *) &Emperor_GadgetAttrBuffer);
  832.                     strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer));
  833.                     break;
  834.                 case 16:
  835.                     GetAttr(SCROLLER_Top, Emperor_GadgetName, (ULONG *) &Emperor_GadgetAttrBuffer);
  836.                     strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer));
  837.                     break;
  838.                 case 17:
  839.                     GetAttr(SLIDER_Level, Emperor_GadgetName, (ULONG *) &Emperor_GadgetAttrBuffer);
  840.                     strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer));
  841.                     break;
  842.                 case 19:
  843.                     GetAttr(SPEEDBAR_Selected, Emperor_GadgetName, (ULONG *) &Emperor_GadgetAttrBuffer);
  844.                     strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer));
  845.                     break;
  846.                 case 20:
  847.                     GetAttr(STRINGA_TextVal, Emperor_GadgetName, (ULONG *) &Emperor_GadgetAttrBuffer);
  848.                     strcpy(Emperor_GadgetAttrReturn, (char *) Emperor_GadgetAttrBuffer);
  849.                     break;
  850.                 case 22:
  851.                     GetAttr(GA_TEXTEDITOR_Contents, Emperor_GadgetName, (ULONG *) &Emperor_GadgetAttrBuffer);
  852.                     strcpy(Emperor_GadgetAttrReturn, (char *) Emperor_GadgetAttrBuffer);
  853.                     break;
  854.             }
  855.             break;
  856.         }
  857.     }
  858.     return(Emperor_GadgetAttrReturn);
  859. }
  860.  
  861. void Emperor_SetGadgetAttr(struct Gadget *Emperor_GadgetName, STRPTR Emperor_GadgetValue)
  862. {
  863.     LONG Emperor_GadgetAttrBuffer, Emperor_GadgetCounter;
  864.     struct Window *Emperor_Whichwindow = NULL;
  865.  
  866.     Emperor_GadgetAttrBuffer = 0L;
  867.     for(Emperor_GadgetCounter = 0;Emperor_GadgetCounter < 1023;Emperor_GadgetCounter++)
  868.     {
  869.         if(Gadget1[Emperor_GadgetCounter] == Emperor_GadgetName)
  870.         {
  871.             Emperor_Whichwindow = Window1;
  872.             switch(Emperor_Gadgetkind1[Emperor_GadgetCounter])
  873.             {
  874.                 case 0:
  875.                     Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, GA_Selected, stringtoint(Emperor_GadgetValue), TAG_DONE);
  876.                     break;
  877.                 case 1:
  878.                     Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, GA_Selected, stringtoint(Emperor_GadgetValue), TAG_DONE);
  879.                     break;
  880.                 case 2:
  881.                     Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, CHOOSER_Selected, stringtoint(Emperor_GadgetValue), TAG_DONE);
  882.                     break;
  883.                 case 3:
  884.                     Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, CLICKTAB_Current, stringtoint(Emperor_GadgetValue), TAG_DONE);
  885.                     break;
  886.                 case 6:
  887.                     Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, FUELGAUGE_Level, stringtoint(Emperor_GadgetValue), TAG_DONE);
  888.                     break;
  889.                 case 10:
  890.                     Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, INTEGER_Number, stringtoint(Emperor_GadgetValue), TAG_DONE);
  891.                     break;
  892.                 case 11:
  893.                     Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, GRAD_CurVal, stringtoint(Emperor_GadgetValue), TAG_DONE);
  894.                     break;
  895.                 case 13:
  896.                     Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, LISTBROWSER_Selected, stringtoint(Emperor_GadgetValue), TAG_DONE);
  897.                     break;
  898.                 case 14:
  899.                     Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, PALETTE_Colour, stringtoint(Emperor_GadgetValue), TAG_DONE);
  900.                     break;
  901.                 case 15:
  902.                     Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, RADIOBUTTON_Selected, stringtoint(Emperor_GadgetValue), TAG_DONE);
  903.                     break;
  904.                 case 16:
  905.                     Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, SCROLLER_Top, stringtoint(Emperor_GadgetValue), TAG_DONE);
  906.                     break;
  907.                 case 17:
  908.                     Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, SLIDER_Level, stringtoint(Emperor_GadgetValue), TAG_DONE);
  909.                     break;
  910.                 case 19:
  911.                     Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, SPEEDBAR_Selected, Emperor_GadgetValue, TAG_DONE);
  912.                     break;
  913.                 case 20:
  914.                     Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, STRINGA_TextVal, Emperor_GadgetValue, TAG_DONE);
  915.                     break;
  916.                 case 22:
  917.                     Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, GA_TEXTEDITOR_Contents, Emperor_GadgetValue, TAG_DONE);
  918.                     break;
  919.             }
  920.             if(Emperor_GadgetAttrBuffer) RefreshGList(Emperor_GadgetName, Emperor_Whichwindow, NULL, 1);
  921.             break;
  922.         }
  923.     }
  924. }
  925.  
  926. STRPTR Emperor_GetGadgetAttrComplex(struct Gadget *Emperor_GadgetName, ULONG Emperor_GadgetFlagMask)
  927. {
  928.     LONG Emperor_GadgetAttrBuffer, Emperor_GadgetCounter;
  929.     STRPTR Emperor_GadgetAttrReturn = "";
  930.  
  931.     Emperor_GadgetAttrBuffer = 0L;
  932.     for(Emperor_GadgetCounter = 0;Emperor_GadgetCounter < 1023;Emperor_GadgetCounter++)
  933.     {
  934.         if(Gadget1[Emperor_GadgetCounter] == Emperor_GadgetName)
  935.         {
  936.             GetAttr(Emperor_GadgetFlagMask, Emperor_GadgetName, (ULONG *) &Emperor_GadgetAttrBuffer);
  937.             switch(Emperor_Gadgetkind1[Emperor_GadgetCounter])
  938.             {
  939.                 case 0:
  940.                     if(Emperor_GadgetFlagMask == GA_Text) strcpy(Emperor_GadgetAttrReturn, (char *) Emperor_GadgetAttrBuffer);
  941.                     else strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer));
  942.                     break;
  943.                 case 1:
  944.                     if(Emperor_GadgetFlagMask == GA_Text) strcpy(Emperor_GadgetAttrReturn, (char *) Emperor_GadgetAttrBuffer);
  945.                     else strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer));
  946.                     break;
  947.                 case 2:
  948.                     if(Emperor_GadgetFlagMask == CHOOSER_Title) strcpy(Emperor_GadgetAttrReturn, (char *) Emperor_GadgetAttrBuffer);
  949.                     else strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer));
  950.                     break;
  951.                 case 3: strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer)); break;
  952.                 case 4:
  953.                     if(Emperor_GadgetFlagMask == WHEEL_Abbrv) strcpy(Emperor_GadgetAttrReturn, (char *) Emperor_GadgetAttrBuffer);
  954.                     else
  955.                     {
  956.                         if((Emperor_GadgetFlagMask == WHEEL_Red) || (Emperor_GadgetFlagMask == WHEEL_Green) || (Emperor_GadgetFlagMask == WHEEL_Blue) || (Emperor_GadgetFlagMask == WHEEL_Hue) || (Emperor_GadgetFlagMask == WHEEL_Saturation) || (Emperor_GadgetFlagMask == WHEEL_Brightness)) strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer >> 24));
  957.                         else strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer));
  958.                     }
  959.                     break;
  960.                 case 5:
  961.                     if(Emperor_GadgetFlagMask == DATEBROWSER_DayTitles) strcpy(Emperor_GadgetAttrReturn, (char *) Emperor_GadgetAttrBuffer);
  962.                     else strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer));
  963.                     break;
  964.                 case 6:
  965.                     if(Emperor_GadgetFlagMask == GA_Text) strcpy(Emperor_GadgetAttrReturn, (char *) Emperor_GadgetAttrBuffer);
  966.                     else strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer));
  967.                     break;
  968.                 case 7:
  969.                     if((Emperor_GadgetFlagMask == GETFILE_TitleText) || (Emperor_GadgetFlagMask == GETFILE_File) || (Emperor_GadgetFlagMask == GETFILE_Drawer) || (Emperor_GadgetFlagMask == GETFILE_FullFile) || (Emperor_GadgetFlagMask == GETFILE_Pattern) || (Emperor_GadgetFlagMask == GETFILE_AcceptPattern) || (Emperor_GadgetFlagMask == GETFILE_RejectPattern)) strcpy(Emperor_GadgetAttrReturn, (char *) Emperor_GadgetAttrBuffer);
  970.                     else strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer));
  971.                     break;
  972.                 case 8:
  973.                     if(Emperor_GadgetFlagMask == GETFONT_TitleText) strcpy(Emperor_GadgetAttrReturn, (char *) Emperor_GadgetAttrBuffer);
  974.                     else strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer));
  975.                     break;
  976.                 case 9:
  977.                     if(Emperor_GadgetFlagMask == GETSCREENMODE_TitleText) strcpy(Emperor_GadgetAttrReturn, (char *) Emperor_GadgetAttrBuffer);
  978.                     else strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer));
  979.                     break;
  980.                 case 10: strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer)); break;
  981.                 case 11: strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer)); break;
  982.                 case 13: strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer)); break;
  983.                 case 14: strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer)); break;
  984.                 case 15: strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer)); break;
  985.                 case 16: strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer)); break;
  986.                 case 17: strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer)); break;
  987.                 case 18: strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer)); break;
  988.                 case 19: strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer)); break;
  989.                 case 20:
  990.                     if((Emperor_GadgetFlagMask == STRINGA_TextVal) || (Emperor_GadgetFlagMask == STRINGA_Buffer) || (Emperor_GadgetFlagMask == STRINGA_UndoBuffer) || (Emperor_GadgetFlagMask == STRINGA_WorkBuffer)) strcpy(Emperor_GadgetAttrReturn, (char *) Emperor_GadgetAttrBuffer);
  991.                     else strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer));
  992.                     break;
  993.                 case 21: strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer)); break;
  994.                 case 22:
  995.                     if(Emperor_GadgetFlagMask == GA_TEXTEDITOR_Contents) strcpy(Emperor_GadgetAttrReturn, (char *) Emperor_GadgetAttrBuffer);
  996.                     else strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer));
  997.                     break;
  998.             }
  999.             break;
  1000.         }
  1001.     }
  1002.     return(Emperor_GadgetAttrReturn);
  1003. }
  1004.  
  1005. void Emperor_SetGadgetAttrComplex(struct Gadget *Emperor_GadgetName, ULONG Emperor_GadgetFlagMask, STRPTR Emperor_GadgetValue)
  1006. {
  1007.     LONG Emperor_GadgetAttrBuffer, Emperor_GadgetCounter;
  1008.     struct Window *Emperor_Whichwindow = NULL;
  1009.  
  1010.     Emperor_GadgetAttrBuffer = 0L;
  1011.     for(Emperor_GadgetCounter = 0;Emperor_GadgetCounter < 255;Emperor_GadgetCounter++)
  1012.     {
  1013.         if(Gadget1[Emperor_GadgetCounter] == Emperor_GadgetName)
  1014.         {
  1015.             Emperor_Whichwindow = Window1;
  1016.             switch(Emperor_Gadgetkind1[Emperor_GadgetCounter])
  1017.             {
  1018.                 case 0:
  1019.                     if(Emperor_GadgetFlagMask == GA_Text) Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, GA_Text, Emperor_GadgetValue, TAG_DONE);
  1020.                     else Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, Emperor_GadgetFlagMask, stringtoint(Emperor_GadgetValue), TAG_DONE);
  1021.                     break;
  1022.                 case 1:
  1023.                     if(Emperor_GadgetFlagMask == GA_Text) Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, GA_Text, Emperor_GadgetValue, TAG_DONE);
  1024.                     else Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, Emperor_GadgetFlagMask, stringtoint(Emperor_GadgetValue), TAG_DONE);
  1025.                     break;
  1026.                 case 2:
  1027.                     if(Emperor_GadgetFlagMask == CHOOSER_Title) Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, CHOOSER_Title, Emperor_GadgetValue, TAG_DONE);
  1028.                     else
  1029.                     {
  1030.                         if(Emperor_GadgetFlagMask == CHOOSER_Labels)
  1031.                         {
  1032.                             SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, CHOOSER_Labels, (ULONG) ~0, TAG_DONE);
  1033.                             if(Emperor_GadgetValue != NULL) SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, CHOOSER_Labels, Emperor_GadgetValue, TAG_DONE);
  1034.                             Emperor_GadgetAttrBuffer = 1;
  1035.                         }
  1036.                         else Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, Emperor_GadgetFlagMask, stringtoint(Emperor_GadgetValue), TAG_DONE);
  1037.                     }
  1038.                     break;
  1039.                 case 3:
  1040.                     if(Emperor_GadgetFlagMask == CLICKTAB_Labels)
  1041.                     {
  1042.                         SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, CLICKTAB_Labels, (ULONG) ~0, TAG_DONE);
  1043.                         if(Emperor_GadgetValue != NULL) SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, CLICKTAB_Labels, Emperor_GadgetValue, TAG_DONE);
  1044.                         Emperor_GadgetAttrBuffer = 1;
  1045.                     }
  1046.                     else Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, Emperor_GadgetFlagMask, stringtoint(Emperor_GadgetValue), TAG_DONE);
  1047.                     break;
  1048.                 case 4:
  1049.                     if(Emperor_GadgetFlagMask == WHEEL_Abbrv) Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, WHEEL_Abbrv, Emperor_GadgetValue, TAG_DONE);
  1050.                     else
  1051.                     {
  1052.                         if((Emperor_GadgetFlagMask == WHEEL_Red) || (Emperor_GadgetFlagMask == WHEEL_Green) || (Emperor_GadgetFlagMask == WHEEL_Blue) || (Emperor_GadgetFlagMask == WHEEL_Hue) || (Emperor_GadgetFlagMask == WHEEL_Saturation) || (Emperor_GadgetFlagMask == WHEEL_Brightness)) Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, Emperor_GadgetFlagMask, stringtoint(Emperor_GadgetValue) << 24, TAG_DONE);
  1053.                         else Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, Emperor_GadgetFlagMask, stringtoint(Emperor_GadgetValue), TAG_DONE);
  1054.                     }
  1055.                     break;
  1056.                 case 5:
  1057.                     if(Emperor_GadgetFlagMask == DATEBROWSER_DayTitles) Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, DATEBROWSER_DayTitles, Emperor_GadgetValue, TAG_DONE);
  1058.                     else Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, Emperor_GadgetFlagMask, stringtoint(Emperor_GadgetValue), TAG_DONE);
  1059.                     break;
  1060.                 case 6:
  1061.                     if(Emperor_GadgetFlagMask == GA_Text) Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, GA_Text, Emperor_GadgetValue, TAG_DONE);
  1062.                     else Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, Emperor_GadgetFlagMask, stringtoint(Emperor_GadgetValue), TAG_DONE);
  1063.                     break;
  1064.                 case 7:
  1065.                     if((Emperor_GadgetFlagMask == GETFILE_TitleText) || (Emperor_GadgetFlagMask == GETFILE_File) || (Emperor_GadgetFlagMask == GETFILE_Drawer) || (Emperor_GadgetFlagMask == GETFILE_FullFile) || (Emperor_GadgetFlagMask == GETFILE_Pattern) || (Emperor_GadgetFlagMask == GETFILE_AcceptPattern) || (Emperor_GadgetFlagMask == GETFILE_RejectPattern)) Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, Emperor_GadgetFlagMask, Emperor_GadgetValue, TAG_DONE);
  1066.                     else Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, Emperor_GadgetFlagMask, stringtoint(Emperor_GadgetValue), TAG_DONE);
  1067.                     break;
  1068.                 case 8:
  1069.                     if(Emperor_GadgetFlagMask == GETFONT_TitleText) Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, GETFONT_TitleText, Emperor_GadgetValue, TAG_DONE);
  1070.                     else Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, Emperor_GadgetFlagMask, stringtoint(Emperor_GadgetValue), TAG_DONE);
  1071.                     break;
  1072.                 case 9:
  1073.                     if(Emperor_GadgetFlagMask == GETSCREENMODE_TitleText) Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, GETSCREENMODE_TitleText, Emperor_GadgetValue, TAG_DONE);
  1074.                     else Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, Emperor_GadgetFlagMask, stringtoint(Emperor_GadgetValue), TAG_DONE);
  1075.                     break;
  1076.                 case 10: Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, Emperor_GadgetFlagMask, stringtoint(Emperor_GadgetValue), TAG_DONE); break;
  1077.                 case 11: Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, Emperor_GadgetFlagMask, stringtoint(Emperor_GadgetValue), TAG_DONE); break;
  1078.                 case 13:
  1079.                     if(Emperor_GadgetFlagMask == LISTBROWSER_Labels)
  1080.                     {
  1081.                         SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, LISTBROWSER_Labels, (ULONG) ~0, TAG_DONE);
  1082.                         if(Emperor_GadgetValue != NULL) SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, LISTBROWSER_Labels, Emperor_GadgetValue, TAG_DONE);
  1083.                         Emperor_GadgetAttrBuffer = 1;
  1084.                     }
  1085.                     else
  1086.                     {
  1087.                         if(Emperor_GadgetFlagMask == LISTBROWSER_ColumnInfo)
  1088.                         {
  1089.                             SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, LISTBROWSER_ColumnInfo, (ULONG) ~0, TAG_DONE);
  1090.                             if(Emperor_GadgetValue != NULL) SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, LISTBROWSER_ColumnInfo, Emperor_GadgetValue, TAG_DONE);
  1091.                             Emperor_GadgetAttrBuffer = 1;
  1092.                         }
  1093.                         else Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, Emperor_GadgetFlagMask, stringtoint(Emperor_GadgetValue), TAG_DONE);
  1094.                     }
  1095.                     break;
  1096.                 case 14: Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, Emperor_GadgetFlagMask, stringtoint(Emperor_GadgetValue), TAG_DONE); break;
  1097.                 case 15:
  1098.                     if(Emperor_GadgetFlagMask == RADIOBUTTON_Labels)
  1099.                     {
  1100.                         SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, RADIOBUTTON_Labels, (ULONG) ~0, TAG_DONE);
  1101.                         if(Emperor_GadgetValue != NULL) SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, RADIOBUTTON_Labels, Emperor_GadgetValue, TAG_DONE);
  1102.                         Emperor_GadgetAttrBuffer = 1;
  1103.                     }
  1104.                     else Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, Emperor_GadgetFlagMask, stringtoint(Emperor_GadgetValue), TAG_DONE);
  1105.                     break;
  1106.                 case 16: Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, Emperor_GadgetFlagMask, stringtoint(Emperor_GadgetValue), TAG_DONE); break;
  1107.                 case 17: Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, Emperor_GadgetFlagMask, stringtoint(Emperor_GadgetValue), TAG_DONE); break;
  1108.                 case 18: Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, Emperor_GadgetFlagMask, stringtoint(Emperor_GadgetValue), TAG_DONE); break;
  1109.                 case 19: Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, Emperor_GadgetFlagMask, stringtoint(Emperor_GadgetValue), TAG_DONE); break;
  1110.                 case 20:
  1111.                     if((Emperor_GadgetFlagMask == STRINGA_TextVal) || (Emperor_GadgetFlagMask == STRINGA_Buffer) || (Emperor_GadgetFlagMask == STRINGA_UndoBuffer) || (Emperor_GadgetFlagMask == STRINGA_WorkBuffer)) Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, Emperor_GadgetFlagMask, Emperor_GadgetValue, TAG_DONE);
  1112.                     else Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, Emperor_GadgetFlagMask, stringtoint(Emperor_GadgetValue), TAG_DONE);
  1113.                     break;
  1114.                 case 21: Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, Emperor_GadgetFlagMask, stringtoint(Emperor_GadgetValue), TAG_DONE); break;
  1115.                 case 22:
  1116.                     if(Emperor_GadgetFlagMask == GA_TEXTEDITOR_Contents) Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, GA_TEXTEDITOR_Contents, Emperor_GadgetValue, TAG_DONE);
  1117.                     else Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, Emperor_GadgetFlagMask, stringtoint(Emperor_GadgetValue), TAG_DONE);
  1118.                     break;
  1119.             }
  1120.             if(Emperor_GadgetAttrBuffer) RefreshGList(Emperor_GadgetName, Emperor_Whichwindow, NULL, 1);
  1121.             break;
  1122.         }
  1123.     }
  1124. }
  1125.  
  1126. BOOL Emperor_GetGadgetDisabledAttr(struct Gadget *Emperor_GadgetName)
  1127. {
  1128.     LONG Emperor_GadgetAttrBuffer, Emperor_GadgetCounter;
  1129.     BOOL Emperor_GadgetAttrReturn;
  1130.  
  1131.     Emperor_GadgetAttrBuffer = 0L;
  1132.     for(Emperor_GadgetCounter = 0;Emperor_GadgetCounter < 255;Emperor_GadgetCounter++)
  1133.     {
  1134.         if(Gadget1[Emperor_GadgetCounter] == Emperor_GadgetName)
  1135.         {
  1136.             GetAttr(GA_Disabled, Emperor_GadgetName, (ULONG *) &Emperor_GadgetAttrBuffer);
  1137.             break;
  1138.         }
  1139.     }
  1140.     Emperor_GadgetAttrReturn = Emperor_GadgetAttrBuffer;
  1141.     return(Emperor_GadgetAttrReturn);
  1142. }
  1143.  
  1144. void Emperor_SetGadgetDisabledAttr(struct Gadget *Emperor_GadgetName, BOOL Emperor_GadgetValue)
  1145. {
  1146.     LONG Emperor_GadgetAttrBuffer, Emperor_GadgetCounter;
  1147.     struct Window *Emperor_Whichwindow = NULL;
  1148.  
  1149.     Emperor_GadgetAttrBuffer = 0L;
  1150.     for(Emperor_GadgetCounter = 0;Emperor_GadgetCounter < 255;Emperor_GadgetCounter++)
  1151.     {
  1152.         if(Gadget1[Emperor_GadgetCounter] == Emperor_GadgetName)
  1153.         {
  1154.             Emperor_Whichwindow = Window1;
  1155.             Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, GA_Disabled, Emperor_GadgetValue, TAG_DONE);
  1156.             if(Emperor_GadgetAttrBuffer) RefreshGList(Emperor_GadgetName, Emperor_Whichwindow, NULL, 1);
  1157.             break;
  1158.         }
  1159.     }
  1160. }
  1161.  
  1162. BOOL Emperor_GetGadgetAttrReadOnly(struct Gadget *Emperor_GadgetName)
  1163. {
  1164.     LONG Emperor_GadgetAttrBuffer, Emperor_GadgetCounter;
  1165.     BOOL Emperor_GadgetAttrReturn;
  1166.  
  1167.     Emperor_GadgetAttrBuffer = 0L;
  1168.     for(Emperor_GadgetCounter = 0;Emperor_GadgetCounter < 255;Emperor_GadgetCounter++)
  1169.     {
  1170.         if(Gadget1[Emperor_GadgetCounter] == Emperor_GadgetName)
  1171.         {
  1172.             GetAttr(GA_ReadOnly, Emperor_GadgetName, (ULONG *) &Emperor_GadgetAttrBuffer);
  1173.             break;
  1174.         }
  1175.     }
  1176.     Emperor_GadgetAttrReturn = Emperor_GadgetAttrBuffer;
  1177.     return(Emperor_GadgetAttrReturn);
  1178. }
  1179.  
  1180. void Emperor_SetGadgetReadOnlyAttr(struct Gadget *Emperor_GadgetName, BOOL Emperor_GadgetValue)
  1181. {
  1182.     LONG Emperor_GadgetAttrBuffer, Emperor_GadgetCounter;
  1183.     struct Window *Emperor_Whichwindow = NULL;
  1184.  
  1185.     Emperor_GadgetAttrBuffer = 0L;
  1186.     for(Emperor_GadgetCounter = 0;Emperor_GadgetCounter < 255;Emperor_GadgetCounter++)
  1187.     {
  1188.         if(Gadget1[Emperor_GadgetCounter] == Emperor_GadgetName)
  1189.         {
  1190.             Emperor_Whichwindow = Window1;
  1191.             Emperor_GadgetAttrBuffer = SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, GA_ReadOnly, Emperor_GadgetValue, TAG_DONE);
  1192.             if(Emperor_GadgetAttrBuffer) RefreshGList(Emperor_GadgetName, Emperor_Whichwindow, NULL, 1);
  1193.             break;
  1194.         }
  1195.     }
  1196. }
  1197.  
  1198. void Emperor_ActivateGadget(struct Gadget *Emperor_GadgetName)
  1199. {
  1200.     LONG Emperor_GadgetCounter;
  1201.     struct Window *Emperor_Whichwindow = NULL;
  1202.  
  1203.     for(Emperor_GadgetCounter = 0;Emperor_GadgetCounter < 255;Emperor_GadgetCounter++)
  1204.     {
  1205.         if(Gadget1[Emperor_GadgetCounter] == Emperor_GadgetName)
  1206.         {
  1207.             Emperor_Whichwindow = Window1;
  1208.             break;
  1209.         }
  1210.     }
  1211.     ActivateGadget(Emperor_GadgetName, Emperor_Whichwindow, NULL);
  1212. }
  1213.  
  1214. void Emperor_RethinkLayout(struct Gadget *Emperor_GadgetName)
  1215. {
  1216.     LONG Emperor_GadgetCounter;
  1217.     struct Window *Emperor_Whichwindow = NULL;
  1218.  
  1219.     for(Emperor_GadgetCounter = 0;Emperor_GadgetCounter < 255;Emperor_GadgetCounter++)
  1220.     {
  1221.         if(Gadget1[Emperor_GadgetCounter] == Emperor_GadgetName)
  1222.         {
  1223.             Emperor_Whichwindow = Window1;
  1224.             break;
  1225.         }
  1226.     }
  1227.     RethinkLayout(Emperor_GadgetName, Emperor_Whichwindow, NULL, TRUE);
  1228. }
  1229.  
  1230. void Emperor_RefreshGList(struct Gadget *Emperor_GadgetName, WORD Emperor_NumberRefresh)
  1231. {
  1232.     LONG Emperor_GadgetCounter;
  1233.     struct Window *Emperor_Whichwindow = NULL;
  1234.  
  1235.     for(Emperor_GadgetCounter = 0;Emperor_GadgetCounter < 255;Emperor_GadgetCounter++)
  1236.     {
  1237.         if(Gadget1[Emperor_GadgetCounter] == Emperor_GadgetName)
  1238.         {
  1239.             Emperor_Whichwindow = Window1;
  1240.             break;
  1241.         }
  1242.     }
  1243.     RefreshGList(Emperor_GadgetName, Emperor_Whichwindow, NULL, Emperor_NumberRefresh);
  1244. }
  1245.  
  1246. void Emperor_ChangeWindowPosition(struct Window *Emperor_ApplicationWindow, WORD Emperor_Left, WORD Emperor_Top)
  1247. {
  1248.     WORD Emperor_Width, Emperor_Height;
  1249.  
  1250.     Emperor_Width = Emperor_ApplicationWindow->Width;
  1251.     Emperor_Height = Emperor_ApplicationWindow->Height;
  1252.     ChangeWindowBox(Emperor_ApplicationWindow, Emperor_Left, Emperor_Top, Emperor_Width, Emperor_Height);
  1253. }
  1254.  
  1255. void Emperor_ChangeWindowSize(struct Window *Emperor_ApplicationWindow, WORD Emperor_Width, WORD Emperor_Height)
  1256. {
  1257.     WORD Emperor_Left, Emperor_Top;
  1258.  
  1259.     Emperor_Left = Emperor_ApplicationWindow->LeftEdge;
  1260.     Emperor_Top = Emperor_ApplicationWindow->TopEdge;
  1261.     ChangeWindowBox(Emperor_ApplicationWindow, Emperor_Left, Emperor_Top, Emperor_Width, Emperor_Height);
  1262. }
  1263.  
  1264. void Emperor_SetWindowBusyPointer(struct Window *Emperor_ApplicationWindow, BOOL Emperor_SetReset)
  1265. {
  1266.     if(Emperor_SetReset) SetWindowPointer(Emperor_ApplicationWindow, WA_BusyPointer, TRUE, WA_PointerDelay, TRUE, TAG_DONE);
  1267.     else SetWindowPointer(Emperor_ApplicationWindow, TAG_DONE);
  1268. }
  1269.  
  1270. void Emperor_SetWindowTitle(struct Window *Emperor_ApplicationWindow, STRPTR Emperor_Title)
  1271. {
  1272.     SetWindowTitles(Emperor_ApplicationWindow, (UBYTE *) Emperor_Title, ((UBYTE *) ~0));
  1273. }
  1274.  
  1275. void Emperor_SetScreenTitle(struct Window *Emperor_ApplicationWindow, STRPTR Emperor_Title)
  1276. {
  1277.     SetWindowTitles(Emperor_ApplicationWindow, ((UBYTE *) ~0), (UBYTE *) Emperor_Title);
  1278. }
  1279.  
  1280. void Emperor_AllocChooserNode(struct List *Emperor_List, char **Emperor_Labels, WORD *Emperor_Attributes)
  1281. {
  1282.     WORD Emperor_Counter1 = 0;
  1283.     struct Node *Emperor_Node;
  1284.  
  1285.     if(os35)
  1286.     {
  1287.         NewList(Emperor_List);
  1288.         while(*Emperor_Labels)
  1289.         {
  1290.             Emperor_Node = AllocChooserNode(CNA_Text, *Emperor_Labels, CNA_Disabled, Emperor_Attributes[Emperor_Counter1], CNA_ReadOnly, Emperor_Attributes[Emperor_Counter1 + 1], TAG_DONE);
  1291.             AddTail(Emperor_List, Emperor_Node);
  1292.             Emperor_Labels++;
  1293.             Emperor_Counter1 += 12;
  1294.         }
  1295.     }
  1296. }
  1297.  
  1298. void Emperor_AllocClicktabNode(struct List *Emperor_List, char **Emperor_Labels, WORD *Emperor_Attributes)
  1299. {
  1300.     WORD Emperor_Counter1 = 0, Emperor_Counter2 = 0;
  1301.     struct Node *Emperor_Node;
  1302.  
  1303.     if(os35)
  1304.     {
  1305.         NewList(Emperor_List);
  1306.         while(*Emperor_Labels)
  1307.         {
  1308.             Emperor_Node = AllocClickTabNode(TNA_Text, *Emperor_Labels, TNA_Disabled, Emperor_Attributes[Emperor_Counter1], TNA_Number, Emperor_Counter2, TAG_DONE);
  1309.             AddTail(Emperor_List, Emperor_Node);
  1310.             Emperor_Labels++;
  1311.             Emperor_Counter1 += 12;
  1312.             Emperor_Counter2++;
  1313.         }
  1314.     }
  1315. }
  1316.  
  1317. void Emperor_AllocListbrowserNode(struct List *Emperor_List, char **Emperor_Labels, WORD *Emperor_Attributes)
  1318. {
  1319.     WORD Emperor_Counter1 = 0, Emperor_Counter2 = 0;
  1320.     struct Node *Emperor_Node;
  1321.  
  1322.     if(os35)
  1323.     {
  1324.         NewList(Emperor_List);
  1325.         while(*Emperor_Labels)
  1326.         {
  1327.             Emperor_Counter2 = 0;
  1328.             if(Emperor_Attributes[Emperor_Counter1 + 1]) Emperor_Counter2 += 1;
  1329.             if(Emperor_Attributes[Emperor_Counter1 + 2]) Emperor_Counter2 += 4;
  1330.             if(Emperor_Attributes[Emperor_Counter1 + 3]) Emperor_Counter2 += 8;
  1331.             if(Emperor_Attributes[Emperor_Counter1 + 4]) Emperor_Counter2 += 16;
  1332.             Emperor_Node = AllocListBrowserNode(1, LBNCA_Text, *Emperor_Labels, LBNCA_CopyText, TRUE, LBNA_Generation, Emperor_Attributes[Emperor_Counter1 + 10], LBNA_Column, Emperor_Attributes[Emperor_Counter1 + 11], LBNA_Flags, Emperor_Counter2, LBNA_Selected, Emperor_Attributes[Emperor_Counter1 + 5], LBNA_CheckBox, Emperor_Attributes[Emperor_Counter1 + 6], LBNA_Checked, Emperor_Attributes[Emperor_Counter1 + 7], TAG_DONE);
  1333.             AddTail(Emperor_List, Emperor_Node);
  1334.             Emperor_Labels++;
  1335.             Emperor_Counter1 += 12;
  1336.         }
  1337.     }
  1338. }
  1339.  
  1340. void Emperor_AllocListbrowserGadToolsNode(struct List *Emperor_List, char **Emperor_Labels)
  1341. {
  1342.     struct Node *Emperor_Node;
  1343.     struct Remember *Emperor_RememberKey;
  1344.  
  1345.     NewList(Emperor_List);
  1346.     while(*Emperor_Labels)
  1347.     {
  1348.         Emperor_Node = (struct Node *) AllocRemember(&Emperor_RememberKey, sizeof(struct Node), MEMF_CLEAR);
  1349.         Emperor_Node->ln_Name = *Emperor_Labels;
  1350.         AddTail(Emperor_List, Emperor_Node);
  1351.         Emperor_Labels++;
  1352.     }
  1353. }
  1354.  
  1355. void Emperor_AllocRadiobuttonNode(struct List *Emperor_List, char **Emperor_Labels, WORD *Emperor_Attributes)
  1356. {
  1357.     struct Node *Emperor_Node;
  1358.  
  1359.     if(os35)
  1360.     {
  1361.         NewList(Emperor_List);
  1362.         while(*Emperor_Labels)
  1363.         {
  1364.             Emperor_Node = AllocRadioButtonNode(1, RBNA_Labels, *Emperor_Labels, TAG_DONE);
  1365.             AddTail(Emperor_List, Emperor_Node);
  1366.             Emperor_Labels++;
  1367.         }
  1368.     }
  1369. }
  1370.  
  1371. ULONG stringlength(STRPTR Emperor_StringBuffer)
  1372. {
  1373.     ULONG Emperor_Counter = 0;
  1374.  
  1375.     while(Emperor_StringBuffer[Emperor_Counter] != NULL) Emperor_Counter++;
  1376.     return(Emperor_Counter);
  1377. }
  1378.  
  1379. LONG stringtoint(STRPTR Emperor_StringBuffer)
  1380. {
  1381.     return(atol(Emperor_StringBuffer));
  1382. }
  1383.  
  1384. DOUBLE stringtofloat(STRPTR Emperor_StringBuffer)
  1385. {
  1386.     return(atof(Emperor_StringBuffer));
  1387. }
  1388.  
  1389. STRPTR inttostring(LONG Emperor_NumberBuffer1)
  1390. {
  1391.     LONG Emperor_NumberBuffer2;
  1392.     BYTE Emperor_NumberLength = 0;
  1393.     BYTE Emperor_Counter = 0;
  1394.     char *Emperor_ReturnBuffer = "abcdefghij";
  1395.  
  1396.     strcpy(Emperor_ReturnBuffer, "");
  1397.     Emperor_ReturnBuffer[0] = NULL;
  1398.     if(Emperor_NumberBuffer1 < 0)
  1399.     {
  1400.         strcpy(Emperor_ReturnBuffer, "-");
  1401.         Emperor_NumberBuffer1 = -Emperor_NumberBuffer1;
  1402.     }
  1403.     if(Emperor_NumberBuffer1 > 0) Emperor_NumberLength = 1;
  1404.     if(Emperor_NumberBuffer1/10 > 0) Emperor_NumberLength = 2;
  1405.     if(Emperor_NumberBuffer1/100 > 0) Emperor_NumberLength = 3;
  1406.     if(Emperor_NumberBuffer1/1000 > 0) Emperor_NumberLength = 4;
  1407.     if(Emperor_NumberBuffer1/10000 > 0) Emperor_NumberLength = 5;
  1408.     if(Emperor_NumberBuffer1/100000 > 0) Emperor_NumberLength = 6;
  1409.     if(Emperor_NumberBuffer1/1000000 > 0) Emperor_NumberLength = 7;
  1410.     if(Emperor_NumberBuffer1/10000000 > 0) Emperor_NumberLength = 8;
  1411.     if(Emperor_NumberBuffer1/100000000 > 0) Emperor_NumberLength = 9;
  1412.     if(Emperor_NumberBuffer1 == 0)  strcpy(Emperor_ReturnBuffer, "0");
  1413.     else
  1414.     {
  1415.         Emperor_Counter = Emperor_NumberLength;
  1416.         for(;Emperor_Counter > 0;Emperor_Counter--)
  1417.         {
  1418.             if(Emperor_Counter == 9) Emperor_NumberBuffer2 = Emperor_NumberBuffer1/100000000;
  1419.             if(Emperor_Counter == 8) Emperor_NumberBuffer2 = Emperor_NumberBuffer1/10000000;
  1420.             if(Emperor_Counter == 7) Emperor_NumberBuffer2 = Emperor_NumberBuffer1/1000000;
  1421.             if(Emperor_Counter == 6) Emperor_NumberBuffer2 = Emperor_NumberBuffer1/100000;
  1422.             if(Emperor_Counter == 5) Emperor_NumberBuffer2 = Emperor_NumberBuffer1/10000;
  1423.             if(Emperor_Counter == 4) Emperor_NumberBuffer2 = Emperor_NumberBuffer1/1000;
  1424.             if(Emperor_Counter == 3) Emperor_NumberBuffer2 = Emperor_NumberBuffer1/100;
  1425.             if(Emperor_Counter == 2) Emperor_NumberBuffer2 = Emperor_NumberBuffer1/10;
  1426.             if(Emperor_Counter == 1) Emperor_NumberBuffer2 = Emperor_NumberBuffer1;
  1427.             if(Emperor_NumberBuffer2 == 0) strcat(Emperor_ReturnBuffer, "0");
  1428.             if(Emperor_NumberBuffer2 == 1) strcat(Emperor_ReturnBuffer, "1");
  1429.             if(Emperor_NumberBuffer2 == 2) strcat(Emperor_ReturnBuffer, "2");
  1430.             if(Emperor_NumberBuffer2 == 3) strcat(Emperor_ReturnBuffer, "3");
  1431.             if(Emperor_NumberBuffer2 == 4) strcat(Emperor_ReturnBuffer, "4");
  1432.             if(Emperor_NumberBuffer2 == 5) strcat(Emperor_ReturnBuffer, "5");
  1433.             if(Emperor_NumberBuffer2 == 6) strcat(Emperor_ReturnBuffer, "6");
  1434.             if(Emperor_NumberBuffer2 == 7) strcat(Emperor_ReturnBuffer, "7");
  1435.             if(Emperor_NumberBuffer2 == 8) strcat(Emperor_ReturnBuffer, "8");
  1436.             if(Emperor_NumberBuffer2 == 9) strcat(Emperor_ReturnBuffer, "9");
  1437.             if(Emperor_Counter == 9) Emperor_NumberBuffer1 -= Emperor_NumberBuffer2*100000000;
  1438.             if(Emperor_Counter == 8) Emperor_NumberBuffer1 -= Emperor_NumberBuffer2*10000000;
  1439.             if(Emperor_Counter == 7) Emperor_NumberBuffer1 -= Emperor_NumberBuffer2*1000000;
  1440.             if(Emperor_Counter == 6) Emperor_NumberBuffer1 -= Emperor_NumberBuffer2*100000;
  1441.             if(Emperor_Counter == 5) Emperor_NumberBuffer1 -= Emperor_NumberBuffer2*10000;
  1442.             if(Emperor_Counter == 4) Emperor_NumberBuffer1 -= Emperor_NumberBuffer2*1000;
  1443.             if(Emperor_Counter == 3) Emperor_NumberBuffer1 -= Emperor_NumberBuffer2*100;
  1444.             if(Emperor_Counter == 2) Emperor_NumberBuffer1 -= Emperor_NumberBuffer2*10;
  1445.             if(Emperor_Counter == 1) Emperor_NumberBuffer1 -= Emperor_NumberBuffer2;
  1446.         }
  1447.     }
  1448.     return(Emperor_ReturnBuffer);
  1449. }
  1450.  
  1451. #include <IntegratedCircuitDB.h>
  1452.